package logic;

import dto.MedicoDTO;
import dto.PacienteDTO;
import dto.TurnoDTO;
import java.sql.SQLException;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import jr.ComprobanteJR;

/**
 *
 * @author lucifer
 */
public class ComprobanteTurno {

  private TurnoDTO turno;

  public ComprobanteTurno(int idTurno) throws SQLException {
    turno = Turno.SearchByID(idTurno);
  }

  public ArrayList<ComprobanteJR> GenerarComprobante() throws SQLException {
    MedicoDTO m = Medico.SearchByID(turno.getIdMedico());
    PacienteDTO p = Paciente.SearchByID(turno.getIdPaciente());

    ArrayList<ComprobanteJR> c = new ArrayList<>();

    c.add(new ComprobanteJR(
      String.format("%s %s", m.getNombre(), m.getApellido()), Especialidad.SearchByID(m.getIdEspecialidad()).getNombre(), m.getMatricula(),
      turno.getFecha().toLocalDate().format(DateTimeFormatter.ofPattern("dd/MM/yyyy")), turno.getFecha().toLocalTime().toString(),
      String.format("%s %s", p.getNombre(), p.getApellido()), String.format("%d", p.getDni()),
      p.getIdObraSocial() == 0 ? ":   Particular" : null, 
      ObraSocial.SearchByID(p.getIdObraSocial()).getNombre(),
      ObraSocialPlan.SearchByID(p.getIdPlanObraSocial()).getNombre(),
      String.format("%d", p.getNAfiliado()),
      p.getIdObraSocial() != turno.getIdObraSocialConsulta()? "Observación: La obra social y/ó plan del paciente no cubre esta consulta." : null
    ));

    return c;
  }

}
